'''

三个文件的表头合并到一个csv文件中

'''

import csv


def save_csv_headers_to_columns(input_files, output_file):
    """
    从多个CSV文件中读取列标题并保存到一个新的CSV文件中，每个文件的标题作为一列

    参数:
    input_files (list): 输入的CSV文件路径列表
    output_file (str): 输出的CSV文件路径
    """
    try:
        # 读取所有文件的列标题
        all_headers = []
        for input_file in input_files:
            with open(input_file, 'r', newline='', encoding='utf-8-sig') as infile:
                reader = csv.reader(infile)
                headers = next(reader)  # 获取第一行列标题
                all_headers.append(headers)

        # 确定最大列数
        max_columns = max(len(headers) for headers in all_headers)

        # 将所有标题列表填充到相同长度（用空字符串）
        for headers in all_headers:
            while len(headers) < max_columns:
                headers.append("")

        # 将列标题保存为新的CSV文件，每个文件的标题作为一列
        with open(output_file, 'w', newline='', encoding='gbk') as outfile:
            writer = csv.writer(outfile)

            # 可选：写入列标题（文件名）
            file_names = [f"文件{i + 1}" for i in range(len(input_files))]
            writer.writerow(file_names)

            # 写入数据行
            for i in range(max_columns):
                row = []
                for headers in all_headers:
                    row.append(headers[i] if i < len(headers) else "")
                writer.writerow(row)

        print(f"成功保存列标题到: {output_file}")
        print(f"格式: {len(input_files)} 列 × {max_columns} 行")
        return True

    except FileNotFoundError as e:
        print(f"错误: 文件不存在 - {e.filename}")
        return False
    except Exception as e:
        print(f"发生错误: {str(e)}")
        return False


# 使用示例

# 定义三个输入文件路径
input_files = [
    r"G:\湛江数据合集\SCADA\2022-2023\外罗风电场1期1号风机\外罗风电场1期1号风机.csv",  # 替换为第一个文件路径
    r"G:\湛江数据合集\SCADA\2023-2024\外罗风电场1期1号风机\外罗风电场1期1号风机.csv",  # 替换为第二个文件路径
    r"G:\湛江数据合集\SCADA\2024-2025\外罗风电场1期1号风机\外罗风电场1期1号风机.csv"  # 替换为第三个文件路径
]

output_csv = r"G:\湛江数据合集\headers.csv"  # 替换为输出文件路径

save_csv_headers_to_columns(input_files, output_csv)
